samba 服务可以实现 windows 和 linux 的文件共享,配置不难,使用也非常简单。
1.samba 配置文件 smb.conf
安装系统的时候大多会默认安装 samba ,如果没有安装,在 centos 上只需要运行
|
|
samba 配置文件为 /etc/samba/smb.conf ,通过修改这个配置文件来完成各种需求。打开配置文件,发现很多内容都用 # 或者 ; 注释掉了,先看一下未被注释的部分
|
|
主要有以上三个部分:[global] , [homes] , [printers]
[global] 定义全局的配置, workgroup 用来定义工作组,相信如果安装过 windows 系统,都会对这个 workgroup 不陌生。一般情况下,需要把这里的 MYGROUP 改成 WORKGROUP (windows 默认的工作组名字)。
- security = user :这里指定 samba 的安全等级。关于安全等级有四种:
share :用户不需要帐号密码即可登录 samba 服务器
user :由提供服务的 samba 服务器负责检查账户及密码(默认)
server :检查账户及密码的工作由另一台 windows 或 samba 服务器负责
domain :指定 windows 域控制服务器来验证用户的账户及密码
passdb bankend = tdbsam :passdb backend (用户后台),samba有三种用户后台:smbpasswd,tdbsam 和 ldapsam。
smbpasswd :该方式是使用 smb 工具 smbpasswd 给系统用户(真实用户或者虚拟用户)设置一个 samba 密码,客户端就用此密码访问 samba 资源。smbpasswd 在 /etc/samba 中,有时需要手工创建该文件。
tdbsam:使用数据库文件创建用户数据库。数据库文件叫 passdb.tdb,在 /etc/samba 中。passdb.tdb 用户数据库可使用 smbpasswd -a 创建 samba 用户,要创建的 samba 用户必须先是系统用户。也可以使用 pdbedit 创建 samba 账户。pdbedit 参数很多,其中主要的有:
pdbedt -a username :新建 samba 账户
pdbedit -x username :删除 samba 账户
pdbedit -L :列出 samba 用户列表,读取 passdb.tdb 数据库文件
pdbedit -Lv :列出 samba 用户列表详细信息
pdbedit -c “[D]” -u username :暂停该 samba 用户帐号
pdbeidt -c “[]” -u username :恢复该 samba 用户帐号
ldapsam :基于 LDAP 账户管理方式验证用户。首先要建立 LDAP 服务,设置 “passdb backend = ldapsam:ldap://LDAP Server”
load printers 和 cups options 两个参数用来设置打印机相关
除了这些参数外,还有几个参数需要了解:
netbios name = MYSERVER :设置出现在网上邻居中的主机名
hosts allow = 127.192.168.12.192.168.13 :用来设置允许的主机,如果在前面加 “;” 则表示允许所有主机。
log file = /var/log/samba/%m.log :定义 samba 的日志,这里的 %m 是上面的 netbios name
max log size = 50 :指定日志的最大容量,单位是K
[home] 该部分内容共享用户子机的家目录,也就是说,当用户登录到 samba 服务器上时,实际上是进入到了该用户的家目录,用户登录后,共享名不是 homes 而是用户子机的标识符,对于单纯的文件共享的环境来说这部分可以注释掉。
[printers] 该部分内容设置打印机共享
2.samba实践
samba 可以实现 linux 和 windows 机器相互共享文件,非常实用。下面实践几个应用。
A.samba 实践一
要求:共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求制度
打开 samba 配置文件 /etc/samba/smb.conf
|
|
在 [global] 部分把:MYGROUP 改成 WORKGROUP ,把 security = user 修改为 security = share 。然后在文件的最末尾处加入以下内容:
|
|
创建测试目录:
|
|
启动 samba 服务:
|
|
测试能否试验要求,首先测试配置的 smb.conf 是否正确,使用命令:
|
|
会看到一个警告:WARNING: The security=share option is deprecated
,不过影响不大,无需管它。如果没有错就在 windows 机器上的浏览器中输入:file://192.168.0.73/sharefiles 看能否访问到
在 linux 机器上输入:
|
|
还有个方法就是挂载,在挂载前先安装
|
|
挂载
|
|
B.samba 实践二
要求:共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写:
打开 samba 的配置文件 /etc/samba/smb.conf
|
|
[global] 部分内容如下:
|
|
还需要加入一下内容:
|
|
保存配置文件,创建目录:
|
|
然后添加用户。因为在 [global] 中 “passdb backend = tdbsam”,所以要使用 pdbedit 来增加用户,注意添加的用户必须在系统中存在,所以需要先创建系统帐号:
|
|
然后添加 user1 为 samba 帐号:
|
|
在添加 user2 为 samba 帐号:
|
|
列出 samba 的所有帐号:
|
|
重启 samba 服务
|
|
测试
打开浏览器输入 file://192.168.0.73/myshare 弹出窗口后输入帐号和密码登录
linux 机器登录
具体语法为:smbclient //IP/共享名 -U 用户名
|
|
可以用 “?” 列出所有可以使用的命令。常用的有 cd,ls,rm,pwd,tar ,mkdir,chown,get,put等,使用 help+ 命令 可以打印该命令如何使用,其中 get 是下载,put 是上传。
另外还可以通过挂载方式
|
|
要指定 -t cifs //IP/共享名 本地挂载点 -o后面跟 username 和 password 挂载完后就可以像使用本地的目录一样使用共享目录了,注意共享名后面不能有斜杠。